﻿using Mengsk.ProxyDelivery.Print.Domain;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Mengsk.ProxyDelivery.Print.ViewModels
{
    class PrintTemplateItemViewModelFactory
    {
        public static PrintTemplateItemViewModelCommon Create(PrintTemplate template, PrintTemplateItemTypes type, string previewValue)
        {
            if (type == PrintTemplateItemTypes.OTERH_DATETIME)
            {
                return new PrintTemplateItemViewModelForDate(template);
            }

            if (type == PrintTemplateItemTypes.OTHER_STATICTEXT)
            {
                return new PrintTemplateItemViewModelForText(template);
            }

            if (type == PrintTemplateItemTypes.GOODS_MONEY_INBIG)
            {
                return new PrintTemplateItemViewModelForPriceInBig(template);
            }

            if (type == PrintTemplateItemTypes.ORDER_DELIVERYNUMBERBARCODE)
            {
                return new PrintTemplateItemViewModelForDeliveryNumberBarcode(template);
            }

            if (type == PrintTemplateItemTypes.OTHER_BARCODE)
            {
                return new PrintTemplateItemViewModelForBarcode(template);
            }

            if (type == PrintTemplateItemTypes.ORDER_DELIVERYNUMBERTEXT)
            {
                return new PrintTemplateItemViewModelCommon(template) { PreviewValue = previewValue };
            }

            if (type == PrintTemplateItemTypes.OTHER_IMAGE)
            {
                return new PrintTemplateItemViewModelForImage(template) { PreviewValue = "请选择图片" };
            }

            string strType = type.ToString();
            if (strType.StartsWith("RECIVER") || strType.StartsWith("SELLER") || strType.StartsWith("GOODS") || strType.StartsWith("ORDER") || strType.StartsWith("VENDOR") || strType.StartsWith("SHOP"))
            {
                return new PrintTemplateItemViewModelCommon(template) { PreviewValue = previewValue };
            }

            throw new Exception("系统不支持当前的类型:" + type);
        }
    }
}
